SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION [dbo].[FN_TCFACT_CAMB_Q02]
/*--------------------------------------------------------------------------*/
/*---- Empresa		   : OFISIS S.A					----*/
/*---- Cliente		   : OFISIS S.A					----*/
/*---- Sistema		   : Recursos Humanos				----*/
/*---- Modulo		   : Cuenta Corriente				----*/
/*---- Programa		   : Convierte Montos de una Moneda a otra	----*/
/*---- Script		   : TMCTA_CTE.SQL				----*/
/*---- Nombre SP	   : FN_TCFACT_CAMB_Q02				----*/
/*---- Desarrollado por	   : REYNALDO MENACHO LUYO			----*/
/*---- Fecha Creacion	   : 27/11/2001					----*/
/*---- Base de Datos	   : SQL					----*/
/*---- Version		   : 2000					----*/
/*---- Invoca a SP 	   :						----*/
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/*---- Comentarios         : 						----*/
/*---- Drop Procedure  FN_TCFACT_CAMB_Q02             			----*/
/*---- Grant ALL on FN_TCFACT_CAMB_Q02 to public           		----*/
/*---- 									----*/
/*--------------------------------------------------------------------------*/
/*---- Declare  @PRUEBA TD_NU_016_004
       Select @PRUEBA = (SELECT OFITESO.dbo.FN_TCFACT_CAMB_Q02('01', 'SOL', 'EUR', '2003/03/24', 1000, 'C','O', 'N', 3.50))
       Select @PRUEBA							---*/
/*---- 									----*/
/*--------------------------------------------------------------------------*/
(@ISCO_MONE_ORIG	TD_VC_003, 
 @ISCO_MONE_BASE	TD_VC_003, 
 @IDFE_BUSQ		TD_DT_001, 
 @INIM_BASE		TD_NU_016_004,
 @ISST_COMP_VNTA	TD_VC_001, 
 @ISTI_CAMB		TD_VC_001,
 @ISST_USUA		TD_VC_001,
 @ISCO_MONE_NACI	TD_VC_003,
 @ISCO_MONE_EXTR	TD_VC_003,
 @INFA_USUA		TD_NU_015_006) RETURNS TD_NU_015_006

As
Begin
 Declare 
 @VNFA_CAMB		numeric(10,8),
 @VNFA_CAMB_0001	numeric(10,8),
 @VNFA_CAMB_0002	numeric(10,8),
 @ONIM_DEST		numeric(15,6),
 @VNIM_DEST		numeric(16,4)

   Select @VNFA_CAMB = 0
   Select @ONIM_DEST = 0

  IF @ISCO_MONE_ORIG = @ISCO_MONE_BASE
	SELECT @ONIM_DEST = @INIM_BASE
  ELSE


  /*------ SI EL FACTOR DE CAMBIO ES COMPRA OFICIAL------*/
  If @ISST_COMP_VNTA = 'C' And @ISTI_CAMB = 'O'
    Begin
	SELECT 	@VNFA_CAMB = ISNULL( ISNULL(FA_CMPR_OFIC, 0) ,0)
	FROM TCFACT_CAMB
	WHERE CO_MONE = @ISCO_MONE_ORIG
	AND CO_MONE_BASE = @ISCO_MONE_BASE
	AND FE_CAMB = @IDFE_BUSQ

	/*SELECT 	@VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_CMPR_OFIC, 0)
	FROM TCFACT_CAMB
	WHERE CO_MONE = @ISCO_MONE_ORIG
	AND CO_MONE_BASE = @ISCO_MONE_BASE
	AND FE_CAMB <= @IDFE_BUSQ
	AND FA_CMPR_OFIC > 0
	ORDER BY FE_CAMB DESC)*/

	If ISNULL(@VNFA_CAMB, 0) = 0
		SELECT 	@VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_CMPR_OFIC, 0)
		FROM TCFACT_CAMB
		WHERE CO_MONE = @ISCO_MONE_ORIG
		AND CO_MONE_BASE = @ISCO_MONE_BASE
		AND FE_CAMB <= @IDFE_BUSQ
		AND FA_CMPR_OFIC > 0
		ORDER BY FE_CAMB DESC)
	


	IF @VNFA_CAMB > 0 --SI EL TIPO DE CAMBIO ES DIRECTO: DOL A SOL
	  BEGIN
	    IF @ISCO_MONE_ORIG = @ISCO_MONE_EXTR And @ISCO_MONE_BASE = @ISCO_MONE_NACI
		SELECT @ONIM_DEST =  @INIM_BASE * ( PATINDEX (@ISST_USUA, 'S') * @INFA_USUA + 
						   PATINDEX (@ISST_USUA, 'N') * @VNFA_CAMB ) 
	   ELSE
		SELECT @ONIM_DEST =  @INIM_BASE * @VNFA_CAMB
	  END
	ELSE
	  BEGIN
	     SELECT @VNFA_CAMB = ISNULL( ISNULL(FA_CMPR_OFIC, 0) , 0)
	     FROM TCFACT_CAMB
	     WHERE CO_MONE = @ISCO_MONE_BASE
	     AND CO_MONE_BASE = @ISCO_MONE_ORIG
	     AND FE_CAMB = @IDFE_BUSQ

	     If ISNULL(@VNFA_CAMB, 0) = 0
	     	SELECT @VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_CMPR_OFIC, 0)
	     	FROM TCFACT_CAMB
	     	WHERE CO_MONE = @ISCO_MONE_BASE
	     	AND CO_MONE_BASE = @ISCO_MONE_ORIG
	     	AND FE_CAMB <= @IDFE_BUSQ
	     	AND FA_CMPR_OFIC > 0
	     	ORDER BY FE_CAMB DESC)


/*
	     SELECT @VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_CMPR_OFIC, 0)
	     FROM TCFACT_CAMB
	     WHERE CO_MONE = @ISCO_MONE_BASE
	     AND CO_MONE_BASE = @ISCO_MONE_ORIG
	     AND FE_CAMB <= @IDFE_BUSQ
	     AND FA_CMPR_OFIC > 0
	     ORDER BY FE_CAMB DESC)
*/

		IF @VNFA_CAMB > 0 --SI EL TIPO DE CAMBIO ES INVERSO: SOL A DOL
		  BEGIN
		    IF @ISCO_MONE_ORIG = @ISCO_MONE_NACI And @ISCO_MONE_BASE = @ISCO_MONE_EXTR
			SELECT @ONIM_DEST = @INIM_BASE / ( PATINDEX (@ISST_USUA, 'S') * @INFA_USUA + 
							   PATINDEX (@ISST_USUA, 'N') * @VNFA_CAMB ) 
		    ELSE 
			SELECT @ONIM_DEST = @INIM_BASE / @VNFA_CAMB
		  END
		ELSE
		  BEGIN

		    SELECT @VNFA_CAMB_0001 = ISNULL( ISNULL(T1.FA_CMPR_OFIC, 0), 0)
		    	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
	    		WHERE T1.CO_MONE = @ISCO_MONE_ORIG
		    	AND T2.CO_MONE_BASE = @ISCO_MONE_BASE
		    	AND T1.FE_CAMB = @IDFE_BUSQ
		    	AND T2.FE_CAMB = @IDFE_BUSQ
		    	AND T1.CO_MONE_BASE = T2.CO_MONE

		     If ISNULL(@VNFA_CAMB_0001, 0) = 0 
		    	SELECT @VNFA_CAMB_0001 = (
			SELECT TOP 1 ISNULL(T1.FA_CMPR_OFIC, 0)
		    	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
	    		WHERE T1.CO_MONE = @ISCO_MONE_ORIG
		    	AND T2.CO_MONE_BASE = @ISCO_MONE_BASE
		    	AND T1.FE_CAMB <= @IDFE_BUSQ
		    	AND T2.FE_CAMB <= @IDFE_BUSQ
		    	AND T1.CO_MONE_BASE = T2.CO_MONE
		    	AND T1.FA_CMPR_OFIC > 0
		    	ORDER BY T1.FE_CAMB DESC) 

		    /*SELECT @VNFA_CAMB_0001 = (
			SELECT TOP 1 ISNULL(T1.FA_CMPR_OFIC, 0)
		    	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
	    		WHERE T1.CO_MONE = @ISCO_MONE_ORIG
		    	AND T2.CO_MONE_BASE = @ISCO_MONE_BASE
		    	AND T1.FE_CAMB <= @IDFE_BUSQ
		    	AND T2.FE_CAMB <= @IDFE_BUSQ
		    	AND T1.CO_MONE_BASE = T2.CO_MONE
		    	AND T1.FA_CMPR_OFIC > 0
		    	ORDER BY T1.FE_CAMB DESC) */

    		    SELECT @VNFA_CAMB_0002 = ISNULL( ISNULL(T2.FA_CMPR_OFIC, 0) ,0)
		    	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
		    	WHERE T1.CO_MONE = @ISCO_MONE_ORIG
		    	AND T1.FE_CAMB = @IDFE_BUSQ
		    	AND T2.CO_MONE_BASE = @ISCO_MONE_BASE
		    	AND T2.FE_CAMB = @IDFE_BUSQ
		    	AND T1.CO_MONE_BASE = T2.CO_MONE

		     If ISNULL(@VNFA_CAMB_0002, 0) = 0 
			SELECT @VNFA_CAMB_0002 = (
			SELECT TOP 1 ISNULL(T2.FA_CMPR_OFIC, 0)
		    	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
		    	WHERE T1.CO_MONE = @ISCO_MONE_ORIG
		    	AND T1.FE_CAMB <= @IDFE_BUSQ
		    	AND T2.CO_MONE_BASE = @ISCO_MONE_BASE
		    	AND T2.FE_CAMB <= @IDFE_BUSQ
		    	AND T1.CO_MONE_BASE = T2.CO_MONE
		    	AND T2.FA_CMPR_OFIC > 0
		    	ORDER BY T2.FE_CAMB DESC) 

    		    /*SELECT @VNFA_CAMB_0002 = (
			SELECT TOP 1 ISNULL(T2.FA_CMPR_OFIC, 0)
		    	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
		    	WHERE T1.CO_MONE = @ISCO_MONE_ORIG
		    	AND T1.FE_CAMB <= @IDFE_BUSQ
		    	AND T2.CO_MONE_BASE = @ISCO_MONE_BASE
		    	AND T2.FE_CAMB <= @IDFE_BUSQ
		    	AND T1.CO_MONE_BASE = T2.CO_MONE
		    	AND T2.FA_CMPR_OFIC > 0
		    	ORDER BY T2.FE_CAMB DESC) */


		    SELECT @VNFA_CAMB = @VNFA_CAMB_0001 * @VNFA_CAMB_0002

		    IF @VNFA_CAMB > 0 --SI EXISTE UN CAMINO DIRECTO: EUR A SOL o SOL A EUR
		      BEGIN
			  IF @ISST_USUA = 'N'
			      SELECT @ONIM_DEST = @INIM_BASE * @VNFA_CAMB
			  ELSE
			      SELECT @ONIM_DEST = @INIM_BASE * @INFA_USUA *  @VNFA_CAMB_0001

		      END
		    ELSE
   		      BEGIN
			     SELECT @VNFA_CAMB_0001 = ISNULL( ISNULL(T1.FA_CMPR_OFIC, 0) ,0)
		    		FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			     	WHERE T1.CO_MONE_BASE = @ISCO_MONE_ORIG
		    	    	AND T1.FE_CAMB = @IDFE_BUSQ
		             	AND T2.CO_MONE = @ISCO_MONE_BASE
			     	AND T2.FE_CAMB = @IDFE_BUSQ
			     	AND T1.CO_MONE = T2.CO_MONE_BASE

				If ISNULL(@VNFA_CAMB_0001, 0) = 0
				     	SELECT @VNFA_CAMB_0001 = (
					SELECT TOP 1 ISNULL(T1.FA_CMPR_OFIC, 0) 
			    		FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				     	WHERE T1.CO_MONE_BASE = @ISCO_MONE_ORIG
			    	    	AND T1.FE_CAMB <= @IDFE_BUSQ
			             	AND T2.CO_MONE = @ISCO_MONE_BASE
				     	AND T2.FE_CAMB <= @IDFE_BUSQ
				     	AND T1.CO_MONE = T2.CO_MONE_BASE
				     	AND T1.FA_CMPR_OFIC > 0
				     	ORDER BY T1.FE_CAMB DESC)


			     /*SELECT @VNFA_CAMB_0001 = (
				SELECT TOP 1 ISNULL(T1.FA_CMPR_OFIC, 0) 
		    		FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			     	WHERE T1.CO_MONE_BASE = @ISCO_MONE_ORIG
		    	    	AND T1.FE_CAMB <= @IDFE_BUSQ
		             	AND T2.CO_MONE = @ISCO_MONE_BASE
			     	AND T2.FE_CAMB <= @IDFE_BUSQ
			     	AND T1.CO_MONE = T2.CO_MONE_BASE
			     	AND T1.FA_CMPR_OFIC > 0
			     	ORDER BY T1.FE_CAMB DESC) */


			     SELECT @VNFA_CAMB_0002 = ISNULL( ISNULL(T1.FA_CMPR_OFIC, 0) ,0)
		    		FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			     	WHERE T1.CO_MONE = @ISCO_MONE_BASE
		    	     	AND T1.FE_CAMB = @IDFE_BUSQ
		             	AND T2.CO_MONE_BASE = @ISCO_MONE_ORIG
			     	AND T2.FE_CAMB = @IDFE_BUSQ
			     	AND T1.CO_MONE_BASE = T2.CO_MONE

				If ISNULL(@VNFA_CAMB_0002, 0) = 0
			     	SELECT @VNFA_CAMB_0002 = (
				SELECT TOP 1 ISNULL(T1.FA_CMPR_OFIC, 0) 
		    		FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			     	WHERE T1.CO_MONE = @ISCO_MONE_BASE
		    	     	AND T1.FE_CAMB <= @IDFE_BUSQ
		             	AND T2.CO_MONE_BASE = @ISCO_MONE_ORIG
			     	AND T2.FE_CAMB <= @IDFE_BUSQ
			     	AND T1.CO_MONE_BASE = T2.CO_MONE
			     	AND T1.FA_CMPR_OFIC > 0
			     	ORDER BY T1.FE_CAMB DESC) 


			     	/* SELECT @VNFA_CAMB_0002 = (
				SELECT TOP 1 ISNULL(T1.FA_CMPR_OFIC, 0) 
		    		FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			     	WHERE T1.CO_MONE = @ISCO_MONE_BASE
		    	     	AND T1.FE_CAMB <= @IDFE_BUSQ
		             	AND T2.CO_MONE_BASE = @ISCO_MONE_ORIG
			     	AND T2.FE_CAMB <= @IDFE_BUSQ
			     	AND T1.CO_MONE_BASE = T2.CO_MONE
			     	AND T1.FA_CMPR_OFIC > 0
			     	ORDER BY T1.FE_CAMB DESC) */



				IF @ISST_USUA = 'S'
				  BEGIN	
				    IF @ISCO_MONE_ORIG = @ISCO_MONE_NACI
				        SELECT @VNFA_CAMB_0001 = @INFA_USUA
				    IF @ISCO_MONE_BASE = @ISCO_MONE_NACI
				        SELECT @VNFA_CAMB_0002 = @INFA_USUA
				  END

			     SELECT @VNFA_CAMB = 1 / (@VNFA_CAMB_0001 * @VNFA_CAMB_0002)

			     IF @VNFA_CAMB > 0 --SI EXISTE UN CAMINO INVERSO: EUR A YEN
		      		BEGIN
				  --IF @ISST_USUA = 'N'
				      SELECT @ONIM_DEST = @INIM_BASE * @VNFA_CAMB
				  --ELSE
				      --SELECT @ONIM_DEST = @INIM_BASE * @INFA_USUA *  @VNFA_CAMB_0001

			    	END
			    ELSE
	 			BEGIN

				  SELECT @VNFA_CAMB_0001 = ISNULL( ISNULL(T1.FA_CMPR_OFIC, 0) ,0)
		    	     	  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				  WHERE T1.CO_MONE = @ISCO_MONE_ORIG
		   	 	  AND T1.FE_CAMB = @IDFE_BUSQ
		 		  AND T2.CO_MONE = @ISCO_MONE_BASE
				  AND T2.FE_CAMB = @IDFE_BUSQ
			     	  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE

				  If ISNULL(@VNFA_CAMB_0001, 0) = 0
				  	SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_OFIC, 0)
		    	     	  	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				  	WHERE T1.CO_MONE = @ISCO_MONE_ORIG
		   	 	  	AND T1.FE_CAMB <= @IDFE_BUSQ
		 		  	AND T2.CO_MONE = @ISCO_MONE_BASE
				  	AND T2.FE_CAMB <= @IDFE_BUSQ
			     	  	AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
				  	AND T1.FA_CMPR_OFIC > 0
			     	  	ORDER BY T1.FE_CAMB DESC)


				  /*SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_OFIC, 0)
		    	     	  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				  WHERE T1.CO_MONE = @ISCO_MONE_ORIG
		   	 	  AND T1.FE_CAMB <= @IDFE_BUSQ
		 		  AND T2.CO_MONE = @ISCO_MONE_BASE
				  AND T2.FE_CAMB <= @IDFE_BUSQ
			     	  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
				  AND T1.FA_CMPR_OFIC > 0
			     	  ORDER BY T1.FE_CAMB DESC) */

				  SELECT @VNFA_CAMB_0002 = ISNULL( ISNULL(T1.FA_CMPR_OFIC, 0), 0) 
		    	     	  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				  WHERE T1.CO_MONE = @ISCO_MONE_BASE
		   	 	  AND T1.FE_CAMB = @IDFE_BUSQ
		 		  AND T2.CO_MONE = @ISCO_MONE_ORIG
				  AND T2.FE_CAMB = @IDFE_BUSQ
			     	  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE

				  If ISNULL(@VNFA_CAMB_0002, 0) = 0
				  	SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_OFIC, 0)
		    	     	  	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				  	WHERE T1.CO_MONE = @ISCO_MONE_BASE
		   	 	  	AND T1.FE_CAMB <= @IDFE_BUSQ
		 		  	AND T2.CO_MONE = @ISCO_MONE_ORIG
				  	AND T2.FE_CAMB <= @IDFE_BUSQ
			     	  	AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
				  	AND T1.FA_CMPR_OFIC > 0
			     	  	ORDER BY T1.FE_CAMB DESC)

				  /*SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_OFIC, 0)
		    	     	  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				  WHERE T1.CO_MONE = @ISCO_MONE_BASE
		   	 	  AND T1.FE_CAMB <= @IDFE_BUSQ
		 		  AND T2.CO_MONE = @ISCO_MONE_ORIG
				  AND T2.FE_CAMB <= @IDFE_BUSQ
			     	  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
				  AND T1.FA_CMPR_OFIC > 0
			     	  ORDER BY T1.FE_CAMB DESC)*/

				  SELECT @VNFA_CAMB = @VNFA_CAMB_0001 / @VNFA_CAMB_0002

				  IF @ISST_USUA = 'N'
				      SELECT @ONIM_DEST = @INIM_BASE * @VNFA_CAMB
				  ELSE
				      SELECT @ONIM_DEST = @INIM_BASE * @INFA_USUA *  @VNFA_CAMB_0001

			 	END
		      END	
		  END
	  END
      End
    ELSE
	  /*------ SI EL FACTOR DE CAMBIO ES COMPRA MERCADO------*/
	  If @ISST_COMP_VNTA = 'C' And @ISTI_CAMB = 'M'
	    Begin
		
		SELECT 	@VNFA_CAMB = ISNULL( ISNULL(FA_CMPR_MERC, 0) ,0)
		FROM TCFACT_CAMB
		WHERE  CO_MONE = @ISCO_MONE_ORIG
		AND CO_MONE_BASE = @ISCO_MONE_BASE
		AND FE_CAMB = @IDFE_BUSQ

		If ISNULL(@VNFA_CAMB, 0) = 0
		   	SELECT @VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_CMPR_MERC, 0)
			FROM TCFACT_CAMB
			WHERE  CO_MONE = @ISCO_MONE_ORIG
			AND CO_MONE_BASE = @ISCO_MONE_BASE
			AND FE_CAMB <= @IDFE_BUSQ
			AND FA_CMPR_MERC > 0
			ORDER BY FE_CAMB DESC)

		/* SELECT 	@VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_CMPR_MERC, 0)
		FROM TCFACT_CAMB
		WHERE  CO_MONE = @ISCO_MONE_ORIG
		AND CO_MONE_BASE = @ISCO_MONE_BASE
		AND FE_CAMB <= @IDFE_BUSQ
		AND FA_CMPR_MERC > 0
		ORDER BY FE_CAMB DESC) */


		IF @VNFA_CAMB > 0 --SI EL TIPO DE CAMBIO ES DIRECTO
		  BEGIN
		     IF @ISCO_MONE_ORIG = @ISCO_MONE_EXTR And @ISCO_MONE_BASE = @ISCO_MONE_NACI
			SELECT @ONIM_DEST =  @INIM_BASE * ( PATINDEX (@ISST_USUA, 'S') * @INFA_USUA + 
							   PATINDEX (@ISST_USUA, 'N') * @VNFA_CAMB ) 
	   	     ELSE
			SELECT @ONIM_DEST =  @INIM_BASE * @VNFA_CAMB
		  END
		ELSE
		  BEGIN

		     SELECT @VNFA_CAMB = ISNULL( ISNULL(FA_CMPR_MERC, 0) ,0)
		     FROM TCFACT_CAMB
		     WHERE CO_MONE = @ISCO_MONE_BASE
			AND CO_MONE_BASE = @ISCO_MONE_ORIG
		     AND FE_CAMB = @IDFE_BUSQ

		     If ISNULL(@VNFA_CAMB, 0) = 0
		     	SELECT @VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_CMPR_MERC, 0)
		     	FROM TCFACT_CAMB
		     	WHERE CO_MONE = @ISCO_MONE_BASE
			AND CO_MONE_BASE = @ISCO_MONE_ORIG
		     	AND FE_CAMB <= @IDFE_BUSQ
		     	AND FA_CMPR_MERC > 0
		     	ORDER BY FE_CAMB DESC)

		     /*SELECT @VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_CMPR_MERC, 0)
		     FROM TCFACT_CAMB
		     WHERE CO_MONE = @ISCO_MONE_BASE
			AND CO_MONE_BASE = @ISCO_MONE_ORIG
		     AND FE_CAMB <= @IDFE_BUSQ
		     AND FA_CMPR_MERC > 0
		     ORDER BY FE_CAMB DESC)*/
			

			IF @VNFA_CAMB > 0 --SI EL TIPO DE CAMBIO ES INVERSO
			  BEGIN
			    IF @ISCO_MONE_ORIG = @ISCO_MONE_NACI And @ISCO_MONE_BASE = @ISCO_MONE_EXTR
				SELECT @ONIM_DEST = @INIM_BASE / ( PATINDEX (@ISST_USUA, 'S') * @INFA_USUA + 
								   PATINDEX (@ISST_USUA, 'N') * @VNFA_CAMB ) 
			    ELSE 
				SELECT @ONIM_DEST = @INIM_BASE / @VNFA_CAMB
			  END
			ELSE
			  BEGIN
			    
			    SELECT @VNFA_CAMB_0001 = ISNULL( ISNULL(T1.FA_CMPR_MERC, 0) ,0)
			    FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			    WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			    AND T1.FE_CAMB = @IDFE_BUSQ
			    AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
			    AND T2.FE_CAMB = @IDFE_BUSQ
			    AND T1.CO_MONE_BASE = T2.CO_MONE

			    If ISNULL(@VNFA_CAMB_0001, 0) = 0
			    	SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_MERC, 0)
			    	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			    	WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			    	AND T1.FE_CAMB <= @IDFE_BUSQ
			    	AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
			    	AND T2.FE_CAMB <= @IDFE_BUSQ
			    	AND T1.CO_MONE_BASE = T2.CO_MONE
			    	AND T1.FA_CMPR_MERC > 0
			    	ORDER BY T1.FE_CAMB DESC)

			    /*SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_MERC, 0)
			    FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			    WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			    AND T1.FE_CAMB <= @IDFE_BUSQ
			    AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
			    AND T2.FE_CAMB <= @IDFE_BUSQ
			    AND T1.CO_MONE_BASE = T2.CO_MONE
			    AND T1.FA_CMPR_MERC > 0
			    ORDER BY T1.FE_CAMB DESC) */

	    		    SELECT @VNFA_CAMB_0002 = ISNULL( ISNULL(T2.FA_CMPR_MERC, 0) ,0)
			    FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			    WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			    AND T1.FE_CAMB = @IDFE_BUSQ
			    AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
			    AND T2.FE_CAMB = @IDFE_BUSQ
			    AND T1.CO_MONE_BASE = T2.CO_MONE

			    If ISNULL(@VNFA_CAMB_0002, 0) = 0
	    		    	SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T2.FA_CMPR_MERC, 0)
			    	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			    	WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			    	AND T1.FE_CAMB <= @IDFE_BUSQ
			    	AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
			    	AND T2.FE_CAMB <= @IDFE_BUSQ
			    	AND T1.CO_MONE_BASE = T2.CO_MONE
			    	AND T2.FA_CMPR_MERC > 0
			    	ORDER BY T2.FE_CAMB DESC)

	    		    /* SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T2.FA_CMPR_MERC, 0)
			    FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			    WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			    AND T1.FE_CAMB <= @IDFE_BUSQ
			    AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
			    AND T2.FE_CAMB <= @IDFE_BUSQ
			    AND T1.CO_MONE_BASE = T2.CO_MONE
			    AND T2.FA_CMPR_MERC > 0
			    ORDER BY T2.FE_CAMB DESC) */

			    SELECT @VNFA_CAMB = @VNFA_CAMB_0001 * @VNFA_CAMB_0002

			    IF @VNFA_CAMB > 0 --SI EL EXISTE UN CAMINO DIRECTO 
			      BEGIN
				  IF @ISST_USUA = 'N'
				      SELECT @ONIM_DEST = @INIM_BASE * @VNFA_CAMB
				  ELSE
				      SELECT @ONIM_DEST = @INIM_BASE * @INFA_USUA *  @VNFA_CAMB_0001

			      END
			    ELSE
   			      BEGIN
				     SELECT @VNFA_CAMB_0001 = ISNULL( ISNULL(T1.FA_CMPR_MERC, 0) ,0)
			    	     FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				     WHERE T1.CO_MONE_BASE = @ISCO_MONE_ORIG
			    	     AND T1.FE_CAMB = @IDFE_BUSQ
		        	     AND T2.CO_MONE = @ISCO_MONE_BASE
				     AND T2.FE_CAMB = @IDFE_BUSQ
				     AND T1.CO_MONE = T2.CO_MONE_BASE

				     If ISNULL(@VNFA_CAMB_0001, 0) = 0
				     	SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_MERC, 0)
			    	     	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				     	WHERE T1.CO_MONE_BASE = @ISCO_MONE_ORIG
			    	     	AND T1.FE_CAMB <= @IDFE_BUSQ
		        	     	AND T2.CO_MONE = @ISCO_MONE_BASE
				     	AND T2.FE_CAMB <= @IDFE_BUSQ
				     	AND T1.CO_MONE = T2.CO_MONE_BASE
				     	AND T1.FA_CMPR_MERC > 0
				     	ORDER BY T1.FE_CAMB DESC)


				     /* SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_MERC, 0)
			    	     FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				     WHERE T1.CO_MONE_BASE = @ISCO_MONE_ORIG
			    	     AND T1.FE_CAMB <= @IDFE_BUSQ
		        	     AND T2.CO_MONE = @ISCO_MONE_BASE
				     AND T2.FE_CAMB <= @IDFE_BUSQ
				     AND T1.CO_MONE = T2.CO_MONE_BASE
				     AND T1.FA_CMPR_MERC > 0
				     ORDER BY T1.FE_CAMB DESC) */

				     SELECT @VNFA_CAMB_0002 = ISNULL( ISNULL(T1.FA_CMPR_MERC, 0) ,0)
			    	     FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				     WHERE T1.CO_MONE = @ISCO_MONE_BASE
		    		     AND T1.FE_CAMB = @IDFE_BUSQ
			             AND T2.CO_MONE_BASE = @ISCO_MONE_ORIG
				     AND T2.FE_CAMB = @IDFE_BUSQ
				     AND T1.CO_MONE_BASE = T2.CO_MONE

				     If ISNULL(@VNFA_CAMB_0002, 0) = 0
				     	SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_MERC, 0)
			    	     	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				     	WHERE T1.CO_MONE = @ISCO_MONE_BASE
		    		     	AND T1.FE_CAMB <= @IDFE_BUSQ
			             	AND T2.CO_MONE_BASE = @ISCO_MONE_ORIG
				     	AND T2.FE_CAMB <= @IDFE_BUSQ
				     	AND T1.CO_MONE_BASE = T2.CO_MONE
				     	AND T1.FA_CMPR_MERC > 0
				     	ORDER BY T1.FE_CAMB DESC)

				     /* SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_MERC, 0)
			    	     FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				     WHERE T1.CO_MONE = @ISCO_MONE_BASE
		    		     AND T1.FE_CAMB <= @IDFE_BUSQ
			             AND T2.CO_MONE_BASE = @ISCO_MONE_ORIG
				     AND T2.FE_CAMB <= @IDFE_BUSQ
				     AND T1.CO_MONE_BASE = T2.CO_MONE
				     AND T1.FA_CMPR_MERC > 0
				     ORDER BY T1.FE_CAMB DESC) */

				    IF @ISST_USUA = 'S'
				      BEGIN	
				        IF @ISCO_MONE_ORIG = @ISCO_MONE_NACI
				            SELECT @VNFA_CAMB_0001 = @INFA_USUA
				        IF @ISCO_MONE_BASE = @ISCO_MONE_NACI
				            SELECT @VNFA_CAMB_0002 = @INFA_USUA
				      END

				     SELECT @VNFA_CAMB = 1 / (@VNFA_CAMB_0001 * @VNFA_CAMB_0002)

	     			     IF @VNFA_CAMB > 0 --SI EXISTE UN CAMINO INVERSO 
			      		BEGIN
					  --IF @ISST_USUA = 'N'
					      SELECT @ONIM_DEST = @INIM_BASE * @VNFA_CAMB
					  --ELSE
					      --SELECT @ONIM_DEST = @INIM_BASE * @INFA_USUA *  @VNFA_CAMB_0001

				    	END
				    ELSE
	 		 		BEGIN

					  SELECT @VNFA_CAMB_0001 = ISNULL( ISNULL(T1.FA_CMPR_MERC, 0) ,0)
			    	     	  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					  WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			   	 	  AND T1.FE_CAMB = @IDFE_BUSQ
		 			  AND T2.CO_MONE = @ISCO_MONE_BASE
					  AND T2.FE_CAMB = @IDFE_BUSQ
				     	  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE

					  If ISNULL(@VNFA_CAMB_0001, 0) = 0
					  	SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_MERC, 0)
			    	     	  	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					  	WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			   	 	  	AND T1.FE_CAMB <= @IDFE_BUSQ
		 			  	AND T2.CO_MONE = @ISCO_MONE_BASE
					  	AND T2.FE_CAMB <= @IDFE_BUSQ
				     	  	AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
					  	AND T1.FA_CMPR_MERC > 0
				     	  	ORDER BY T1.FE_CAMB DESC)

					  /* SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_MERC, 0)
			    	     	  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					  WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			   	 	  AND T1.FE_CAMB <= @IDFE_BUSQ
		 			  AND T2.CO_MONE = @ISCO_MONE_BASE
					  AND T2.FE_CAMB <= @IDFE_BUSQ
				     	  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
					  AND T1.FA_CMPR_MERC > 0
				     	  ORDER BY T1.FE_CAMB DESC) */


					  SELECT @VNFA_CAMB_0002 = ISNULL( ISNULL(T1.FA_CMPR_MERC, 0) ,0)
			    	     	  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					  WHERE T1.CO_MONE = @ISCO_MONE_BASE
		   		 	  AND T1.FE_CAMB = @IDFE_BUSQ
		 			  AND T2.CO_MONE = @ISCO_MONE_ORIG
					  AND T2.FE_CAMB = @IDFE_BUSQ
				     	  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE

					  If ISNULL(@VNFA_CAMB_0002, 0) = 0
					  	SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_MERC, 0)
			    	     	  	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					  	WHERE T1.CO_MONE = @ISCO_MONE_BASE
		   		 	  	AND T1.FE_CAMB <= @IDFE_BUSQ
		 			  	AND T2.CO_MONE = @ISCO_MONE_ORIG
					  	AND T2.FE_CAMB <= @IDFE_BUSQ
				     	  	AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
					  	AND T1.FA_CMPR_MERC > 0
				     	  	ORDER BY T1.FE_CAMB DESC)

					  /* SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_CMPR_MERC, 0)
			    	     	  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					  WHERE T1.CO_MONE = @ISCO_MONE_BASE
		   		 	  AND T1.FE_CAMB <= @IDFE_BUSQ
		 			  AND T2.CO_MONE = @ISCO_MONE_ORIG
					  AND T2.FE_CAMB <= @IDFE_BUSQ
				     	  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
					  AND T1.FA_CMPR_MERC > 0
				     	  ORDER BY T1.FE_CAMB DESC) */

					  SELECT @VNFA_CAMB = @VNFA_CAMB_0001 / @VNFA_CAMB_0002

					  IF @ISST_USUA = 'N'
					      SELECT @ONIM_DEST = @INIM_BASE * @VNFA_CAMB
					  ELSE
					      SELECT @ONIM_DEST = @INIM_BASE * @INFA_USUA *  @VNFA_CAMB_0001
	
			 		END

			      END	
			  END
		  END
	    End
	  ELSE
  	    /*------ SI EL FACTOR DE CAMBIO ES VENTA OFICIAL------*/
	    If @ISST_COMP_VNTA = 'V' And @ISTI_CAMB = 'O'
 	     Begin

	  	SELECT 	@VNFA_CAMB = ISNULL(FA_VNTA_OFIC, 0)
		FROM TCFACT_CAMB
		WHERE CO_MONE = @ISCO_MONE_ORIG
		AND  CO_MONE_BASE = @ISCO_MONE_BASE
		AND FE_CAMB = @IDFE_BUSQ

		If ISNULL(@VNFA_CAMB, 0) = 0
			SELECT 	@VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_VNTA_OFIC, 0)
			FROM TCFACT_CAMB
			WHERE CO_MONE = @ISCO_MONE_ORIG
			AND  CO_MONE_BASE = @ISCO_MONE_BASE
			AND FE_CAMB <= @IDFE_BUSQ
			AND FA_VNTA_OFIC > 0
			ORDER BY FE_CAMB DESC)

		/* SELECT 	@VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_VNTA_OFIC, 0)
		FROM TCFACT_CAMB
		WHERE CO_MONE = @ISCO_MONE_ORIG
		AND  CO_MONE_BASE = @ISCO_MONE_BASE
		AND FE_CAMB <= @IDFE_BUSQ
		AND FA_VNTA_OFIC > 0
		ORDER BY FE_CAMB DESC) */

		IF @VNFA_CAMB > 0 --SI EL TIPO DE CAMBIO ES DIRECTO
		  BEGIN
		     IF @ISCO_MONE_ORIG = @ISCO_MONE_EXTR And @ISCO_MONE_BASE = @ISCO_MONE_NACI
			SELECT @ONIM_DEST =  @INIM_BASE * ( PATINDEX (@ISST_USUA, 'S') * @INFA_USUA + 
							   PATINDEX (@ISST_USUA, 'N') * @VNFA_CAMB ) 
	   	     ELSE
			SELECT @ONIM_DEST =  @INIM_BASE * @VNFA_CAMB
 		  END
		ELSE
		  BEGIN
		     SELECT @VNFA_CAMB = ISNULL( ISNULL(FA_VNTA_OFIC, 0) ,0)
		     FROM TCFACT_CAMB
		     WHERE CO_MONE = @ISCO_MONE_BASE
		     AND  CO_MONE_BASE = @ISCO_MONE_ORIG
		     AND FE_CAMB = @IDFE_BUSQ

		     If ISNULL(@VNFA_CAMB, 0) = 0
		     	SELECT @VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_VNTA_OFIC, 0)
		     	FROM TCFACT_CAMB
		     	WHERE CO_MONE = @ISCO_MONE_BASE
		     	AND  CO_MONE_BASE = @ISCO_MONE_ORIG
		     	AND FE_CAMB <= @IDFE_BUSQ
		     	AND FA_VNTA_OFIC > 0
		     	ORDER BY FE_CAMB DESC)

		     /* SELECT @VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_VNTA_OFIC, 0)
		     FROM TCFACT_CAMB
		     WHERE CO_MONE = @ISCO_MONE_BASE
		     AND  CO_MONE_BASE = @ISCO_MONE_ORIG
		     AND FE_CAMB <= @IDFE_BUSQ
		     AND FA_VNTA_OFIC > 0
		     ORDER BY FE_CAMB DESC) */


			IF @VNFA_CAMB > 0 --SI EL TIPO DE CAMBIO ES INVERSO
			  BEGIN
			    IF @ISCO_MONE_ORIG = @ISCO_MONE_NACI And @ISCO_MONE_BASE = @ISCO_MONE_EXTR
				SELECT @ONIM_DEST = @INIM_BASE / ( PATINDEX (@ISST_USUA, 'S') * @INFA_USUA + 
								   PATINDEX (@ISST_USUA, 'N') * @VNFA_CAMB ) 
			    ELSE 
				SELECT @ONIM_DEST = @INIM_BASE / @VNFA_CAMB
			  END
			ELSE
			  BEGIN
			    SELECT @VNFA_CAMB_0001 = ISNULL( ISNULL(T1.FA_VNTA_OFIC, 0) ,0)
			    FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			    WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			    AND T1.FE_CAMB = @IDFE_BUSQ
			    AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
			    AND T2.FE_CAMB = @IDFE_BUSQ
			    AND T1.CO_MONE_BASE = T2.CO_MONE
				
			    If ISNULL(@VNFA_CAMB_0001, 0) = 0
			    	SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_OFIC, 0)
			    	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			    	WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			    	AND T1.FE_CAMB <= @IDFE_BUSQ
			    	AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
			    	AND T2.FE_CAMB <= @IDFE_BUSQ
			    	AND T1.CO_MONE_BASE = T2.CO_MONE
			    	AND T1.FA_VNTA_OFIC > 0
			    	ORDER BY T1.FE_CAMB DESC)


			    /* SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_OFIC, 0)
			    FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			    WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			    AND T1.FE_CAMB <= @IDFE_BUSQ
			    AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
			    AND T2.FE_CAMB <= @IDFE_BUSQ
			    AND T1.CO_MONE_BASE = T2.CO_MONE
			    AND T1.FA_VNTA_OFIC > 0
			    ORDER BY T1.FE_CAMB DESC) */

	    		    SELECT @VNFA_CAMB_0002 = ISNULL( ISNULL(T2.FA_VNTA_OFIC, 0) ,0)
			    FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			    WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			    AND T1.FE_CAMB = @IDFE_BUSQ
			    AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
			    AND T2.FE_CAMB = @IDFE_BUSQ
			    AND T1.CO_MONE_BASE = T2.CO_MONE

			    If ISNULL(@VNFA_CAMB_0002, 0) = 0
			    	SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T2.FA_VNTA_OFIC, 0)
			    	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			    	WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			    	AND T1.FE_CAMB <= @IDFE_BUSQ
			    	AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
			    	AND T2.FE_CAMB <= @IDFE_BUSQ
			    	AND T1.CO_MONE_BASE = T2.CO_MONE
			    	AND T2.FA_VNTA_OFIC > 0
			    	ORDER BY T2.FE_CAMB DESC)

			    /* SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T2.FA_VNTA_OFIC, 0)
			    FROM TCFACT_CAMB T1, TCFACT_CAMB T2
			    WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			    AND T1.FE_CAMB <= @IDFE_BUSQ
			    AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
			    AND T2.FE_CAMB <= @IDFE_BUSQ
			    AND T1.CO_MONE_BASE = T2.CO_MONE
			    AND T2.FA_VNTA_OFIC > 0
			    ORDER BY T2.FE_CAMB DESC) */


			    SELECT @VNFA_CAMB = @VNFA_CAMB_0001 * @VNFA_CAMB_0002

			    IF @VNFA_CAMB > 0 --SI EL EXISTE UN CAMINO DIRECTO 
			      BEGIN
				  IF @ISST_USUA = 'N'
				      SELECT @ONIM_DEST = @INIM_BASE * @VNFA_CAMB
				  ELSE
				      SELECT @ONIM_DEST = @INIM_BASE * @INFA_USUA *  @VNFA_CAMB_0001

			      END
			    ELSE
   			      BEGIN
				     SELECT @VNFA_CAMB_0001 = ISNULL( ISNULL(T1.FA_VNTA_OFIC, 0) ,0)
			    	     FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				     WHERE T1.CO_MONE_BASE = @ISCO_MONE_ORIG
			    	     AND T1.FE_CAMB = @IDFE_BUSQ
		        	     AND T2.CO_MONE = @ISCO_MONE_BASE
				     AND T2.FE_CAMB = @IDFE_BUSQ
				     AND T1.CO_MONE = T2.CO_MONE_BASE

				     If ISNULL(@VNFA_CAMB_0001, 0) = 0
				     	SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_OFIC, 0)
			    	     	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				     	WHERE T1.CO_MONE_BASE = @ISCO_MONE_ORIG
			    	     	AND T1.FE_CAMB <= @IDFE_BUSQ
		        	     	AND T2.CO_MONE = @ISCO_MONE_BASE
				     	AND T2.FE_CAMB <= @IDFE_BUSQ
				     	AND T1.CO_MONE = T2.CO_MONE_BASE
				     	AND T1.FA_VNTA_OFIC > 0
				     	ORDER BY T1.FE_CAMB DESC)

			
				     /* SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_OFIC, 0)
			    	     FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				     WHERE T1.CO_MONE_BASE = @ISCO_MONE_ORIG
			    	     AND T1.FE_CAMB <= @IDFE_BUSQ
		        	     AND T2.CO_MONE = @ISCO_MONE_BASE
				     AND T2.FE_CAMB <= @IDFE_BUSQ
				     AND T1.CO_MONE = T2.CO_MONE_BASE
				     AND T1.FA_VNTA_OFIC > 0
				     ORDER BY T1.FE_CAMB DESC) */

				     SELECT @VNFA_CAMB_0002 = ISNULL( ISNULL(T1.FA_VNTA_OFIC, 0) ,0)
			    	     FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				     WHERE T1.CO_MONE = @ISCO_MONE_BASE
		    		     AND T1.FE_CAMB = @IDFE_BUSQ
			             AND T2.CO_MONE_BASE = @ISCO_MONE_ORIG
				     AND T2.FE_CAMB = @IDFE_BUSQ
				     AND T1.CO_MONE_BASE = T2.CO_MONE

				     If ISNULL(@VNFA_CAMB_0002, 0) = 0
				     	SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_OFIC, 0)
			    	     	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				     	WHERE T1.CO_MONE = @ISCO_MONE_BASE
		    		     	AND T1.FE_CAMB <= @IDFE_BUSQ
			             	AND T2.CO_MONE_BASE = @ISCO_MONE_ORIG
				     	AND T2.FE_CAMB <= @IDFE_BUSQ
				     	AND T1.CO_MONE_BASE = T2.CO_MONE
				     	AND T1.FA_VNTA_OFIC > 0
				     	ORDER BY T1.FE_CAMB DESC)

				     /* SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_OFIC, 0)
			    	     FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				     WHERE T1.CO_MONE = @ISCO_MONE_BASE
		    		     AND T1.FE_CAMB <= @IDFE_BUSQ
			             AND T2.CO_MONE_BASE = @ISCO_MONE_ORIG
				     AND T2.FE_CAMB <= @IDFE_BUSQ
				     AND T1.CO_MONE_BASE = T2.CO_MONE
				     AND T1.FA_VNTA_OFIC > 0
				     ORDER BY T1.FE_CAMB DESC) */


     				     IF @ISST_USUA = 'S'
				       BEGIN	
				         IF @ISCO_MONE_ORIG = @ISCO_MONE_NACI
				             SELECT @VNFA_CAMB_0001 = @INFA_USUA
				         IF @ISCO_MONE_BASE = @ISCO_MONE_NACI
				             SELECT @VNFA_CAMB_0002 = @INFA_USUA
				       END


				     SELECT @VNFA_CAMB = 1 / (@VNFA_CAMB_0001 * @VNFA_CAMB_0002)

				     IF @VNFA_CAMB > 0 --SI EXISTE UN CAMINO INVERSO 
			      		BEGIN
					  --IF @ISST_USUA = 'N'
					      SELECT @ONIM_DEST = @INIM_BASE * @VNFA_CAMB
					  --ELSE
					      --SELECT @ONIM_DEST = @INIM_BASE * @INFA_USUA *  @VNFA_CAMB_0001

				    	END
				    ELSE
	 				BEGIN

					  SELECT @VNFA_CAMB_0001 = ISNULL( ISNULL(T1.FA_VNTA_OFIC, 0) ,0)
		    	     		  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					  WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			   	 	  AND T1.FE_CAMB = @IDFE_BUSQ
			 		  AND T2.CO_MONE = @ISCO_MONE_BASE
					  AND T2.FE_CAMB = @IDFE_BUSQ
			     		  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE

					  If ISNULL(@VNFA_CAMB_0001, 0) = 0
					  	SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_OFIC, 0)
		    	     		  	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					  	WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			   	 	  	AND T1.FE_CAMB <= @IDFE_BUSQ
			 		  	AND T2.CO_MONE = @ISCO_MONE_BASE
					  	AND T2.FE_CAMB <= @IDFE_BUSQ
			     		  	AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
					  	AND T1.FA_VNTA_OFIC > 0
				     	  	ORDER BY T1.FE_CAMB DESC)

					  /* SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_OFIC, 0)
		    	     		  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					  WHERE T1.CO_MONE = @ISCO_MONE_ORIG
			   	 	  AND T1.FE_CAMB <= @IDFE_BUSQ
			 		  AND T2.CO_MONE = @ISCO_MONE_BASE
					  AND T2.FE_CAMB <= @IDFE_BUSQ
			     		  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
					  AND T1.FA_VNTA_OFIC > 0
				     	  ORDER BY T1.FE_CAMB DESC) */


					  SELECT @VNFA_CAMB_0002 = ISNULL( ISNULL(T1.FA_VNTA_OFIC, 0) ,0)
			    	     	  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					  WHERE T1.CO_MONE = @ISCO_MONE_BASE
		   		 	  AND T1.FE_CAMB = @IDFE_BUSQ
		 			  AND T2.CO_MONE = @ISCO_MONE_ORIG
					  AND T2.FE_CAMB = @IDFE_BUSQ
				     	  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE

					  If ISNULL(@VNFA_CAMB_0002, 0) = 0
					  	SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_OFIC, 0)
			    	     	  	FROM 	TCFACT_CAMB T1, TCFACT_CAMB T2
					  	WHERE T1.CO_MONE = @ISCO_MONE_BASE
		   		 	  	AND T1.FE_CAMB <= @IDFE_BUSQ
		 			  	AND T2.CO_MONE = @ISCO_MONE_ORIG
					  	AND T2.FE_CAMB <= @IDFE_BUSQ
				     	  	AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
					  	AND T1.FA_VNTA_OFIC > 0
				     	  	ORDER BY T1.FE_CAMB DESC)

					  /* SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_OFIC, 0)
			    	     	  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					  WHERE T1.CO_MONE = @ISCO_MONE_BASE
		   		 	  AND T1.FE_CAMB <= @IDFE_BUSQ
		 			  AND T2.CO_MONE = @ISCO_MONE_ORIG
					  AND T2.FE_CAMB <= @IDFE_BUSQ
				     	  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
					  AND T1.FA_VNTA_OFIC > 0
				     	  ORDER BY T1.FE_CAMB DESC) */


					  SELECT @VNFA_CAMB = @VNFA_CAMB_0001 / @VNFA_CAMB_0002

					  IF @ISST_USUA = 'N'
					      SELECT @ONIM_DEST = @INIM_BASE * @VNFA_CAMB
					  ELSE
					      SELECT @ONIM_DEST = @INIM_BASE * @INFA_USUA *  @VNFA_CAMB_0001

				 	END

			      END	
			  END
		  END
	     End
	  ELSE
		/*------ SI EL FACTOR DE CAMBIO ES VENTA MERCADO------*/
		If @ISST_COMP_VNTA = 'V' And @ISTI_CAMB = 'M'
		  Begin
			SELECT 	@VNFA_CAMB = ISNULL( ISNULL(FA_VNTA_MERC, 0) ,0)
			FROM TCFACT_CAMB
			WHERE CO_MONE = @ISCO_MONE_ORIG
			And CO_MONE_BASE = @ISCO_MONE_BASE
			AND FE_CAMB = @IDFE_BUSQ

			If ISNULL(@VNFA_CAMB, 0) = 0
				SELECT 	@VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_VNTA_MERC, 0)
				FROM TCFACT_CAMB
				WHERE CO_MONE = @ISCO_MONE_ORIG
				And CO_MONE_BASE = @ISCO_MONE_BASE
				AND FE_CAMB <= @IDFE_BUSQ
				AND FA_VNTA_MERC > 0
				ORDER BY FE_CAMB DESC)

			/* SELECT 	@VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_VNTA_MERC, 0)
			FROM TCFACT_CAMB
			WHERE CO_MONE = @ISCO_MONE_ORIG
			And CO_MONE_BASE = @ISCO_MONE_BASE
			AND FE_CAMB <= @IDFE_BUSQ
			AND FA_VNTA_MERC > 0
			ORDER BY FE_CAMB DESC) */


			IF @VNFA_CAMB > 0 --SI EL TIPO DE CAMBIO ES DIRECTO
			  BEGIN
			     IF @ISCO_MONE_ORIG = @ISCO_MONE_EXTR And @ISCO_MONE_BASE = @ISCO_MONE_NACI
				SELECT @ONIM_DEST =  @INIM_BASE * ( PATINDEX (@ISST_USUA, 'S') * @INFA_USUA + 
								   PATINDEX (@ISST_USUA, 'N') * @VNFA_CAMB ) 
	   		     ELSE
				SELECT @ONIM_DEST =  @INIM_BASE * @VNFA_CAMB
			  END
			ELSE
			  BEGIN
			     SELECT @VNFA_CAMB = ISNULL( ISNULL(FA_VNTA_MERC, 0) ,0)
			     FROM TCFACT_CAMB
			     WHERE CO_MONE = @ISCO_MONE_BASE
			     AND CO_MONE_BASE = @ISCO_MONE_ORIG
			     AND FE_CAMB = @IDFE_BUSQ

			     If ISNULL(@VNFA_CAMB, 0) = 0
			     	SELECT @VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_VNTA_MERC, 0)
			     	FROM TCFACT_CAMB
			     	WHERE CO_MONE = @ISCO_MONE_BASE
			     	AND CO_MONE_BASE = @ISCO_MONE_ORIG
			     	AND FE_CAMB <= @IDFE_BUSQ
			     	AND FA_VNTA_MERC > 0
			     	ORDER BY FE_CAMB DESC)

			     /* SELECT @VNFA_CAMB = (SELECT TOP 1 ISNULL(FA_VNTA_MERC, 0)
			     FROM TCFACT_CAMB
			     WHERE CO_MONE = @ISCO_MONE_BASE
			     AND CO_MONE_BASE = @ISCO_MONE_ORIG
			     AND FE_CAMB <= @IDFE_BUSQ
			     AND FA_VNTA_MERC > 0
			     ORDER BY FE_CAMB DESC) */


				IF @VNFA_CAMB > 0 --SI EL TIPO DE CAMBIO ES INVERSO
				  BEGIN
				    IF @ISCO_MONE_ORIG = @ISCO_MONE_NACI And @ISCO_MONE_BASE = @ISCO_MONE_EXTR
					SELECT @ONIM_DEST = @INIM_BASE / ( PATINDEX (@ISST_USUA, 'S') * @INFA_USUA + 
									   PATINDEX (@ISST_USUA, 'N') * @VNFA_CAMB ) 
				    ELSE 
					SELECT @ONIM_DEST = @INIM_BASE / @VNFA_CAMB
				  END
				ELSE
				  BEGIN

				    SELECT @VNFA_CAMB_0001 = ISNULL( ISNULL(T1.FA_VNTA_MERC, 0) ,0)
				    FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				    WHERE T1.CO_MONE = @ISCO_MONE_ORIG
				    AND T1.FE_CAMB = @IDFE_BUSQ
				    AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
				    AND T2.FE_CAMB = @IDFE_BUSQ
				    AND T1.CO_MONE_BASE = T2.CO_MONE

				    If ISNULL(@VNFA_CAMB_0001, 0) = 0
				    	SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_MERC, 0)
				    	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				    	WHERE T1.CO_MONE = @ISCO_MONE_ORIG
				    	AND T1.FE_CAMB <= @IDFE_BUSQ
				    	AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
				    	AND T2.FE_CAMB <= @IDFE_BUSQ
				    	AND T1.CO_MONE_BASE = T2.CO_MONE
				    	AND T1.FA_VNTA_MERC > 0
				    	ORDER BY T1.FE_CAMB DESC)


				    /* SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_MERC, 0)
				    FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				    WHERE T1.CO_MONE = @ISCO_MONE_ORIG
				    AND T1.FE_CAMB <= @IDFE_BUSQ
				    AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
				    AND T2.FE_CAMB <= @IDFE_BUSQ
				    AND T1.CO_MONE_BASE = T2.CO_MONE
				    AND T1.FA_VNTA_MERC > 0
				    ORDER BY T1.FE_CAMB DESC) */

	    			    SELECT @VNFA_CAMB_0002 = ISNULL( ISNULL(T2.FA_VNTA_MERC, 0) ,0)
				    FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				    WHERE T1.CO_MONE = @ISCO_MONE_ORIG
				    AND T1.FE_CAMB = @IDFE_BUSQ
				    AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
				    AND T2.FE_CAMB = @IDFE_BUSQ
				    AND T1.CO_MONE_BASE = T2.CO_MONE

				    If ISNULL(@VNFA_CAMB_0002, 0) = 0
	    			    	SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T2.FA_VNTA_MERC, 0)
				    	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				    	WHERE T1.CO_MONE = @ISCO_MONE_ORIG
				    	AND T1.FE_CAMB <= @IDFE_BUSQ
				    	AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
				    	AND T2.FE_CAMB <= @IDFE_BUSQ
				    	AND	T1.CO_MONE_BASE = T2.CO_MONE
				    	AND T2.FA_VNTA_MERC > 0
				    	ORDER BY T2.FE_CAMB DESC)

	    			    /* SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T2.FA_VNTA_MERC, 0)
				    FROM TCFACT_CAMB T1, TCFACT_CAMB T2
				    WHERE T1.CO_MONE = @ISCO_MONE_ORIG
				    AND T1.FE_CAMB <= @IDFE_BUSQ
				    AND	T2.CO_MONE_BASE = @ISCO_MONE_BASE
				    AND T2.FE_CAMB <= @IDFE_BUSQ
				    AND T1.CO_MONE_BASE = T2.CO_MONE
				    AND T2.FA_VNTA_MERC > 0
				    ORDER BY T2.FE_CAMB DESC) */


				    SELECT @VNFA_CAMB = @VNFA_CAMB_0001 * @VNFA_CAMB_0002

				    IF @VNFA_CAMB > 0 --SI EL EXISTE UN CAMINO DIRECTO 
				      BEGIN
					  IF @ISST_USUA = 'N'
					      SELECT @ONIM_DEST = @INIM_BASE * @VNFA_CAMB
					  ELSE
					      SELECT @ONIM_DEST = @INIM_BASE * @INFA_USUA *  @VNFA_CAMB_0001
	
				      END
				    ELSE
   				      BEGIN
					     SELECT @VNFA_CAMB_0001 = ISNULL( ISNULL(T1.FA_VNTA_MERC, 0) ,0)
				    	     FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					     WHERE T1.CO_MONE_BASE = @ISCO_MONE_ORIG
				    	     AND T1.FE_CAMB = @IDFE_BUSQ
			        	     AND T2.CO_MONE = @ISCO_MONE_BASE
					     AND T2.FE_CAMB = @IDFE_BUSQ
					     AND T1.CO_MONE = T2.CO_MONE_BASE

					     If ISNULL(@VNFA_CAMB_0001, 0) = 0
					     SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_MERC, 0)
				    	     FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					     WHERE T1.CO_MONE_BASE = @ISCO_MONE_ORIG
				    	     AND T1.FE_CAMB <= @IDFE_BUSQ
			        	     AND T2.CO_MONE = @ISCO_MONE_BASE
					     AND T2.FE_CAMB <= @IDFE_BUSQ
					     AND T1.CO_MONE = T2.CO_MONE_BASE
					     AND T1.FA_VNTA_MERC > 0
					     ORDER BY T1.FE_CAMB DESC) 

					     /* SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_MERC, 0)
				    	     FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					     WHERE T1.CO_MONE_BASE = @ISCO_MONE_ORIG
				    	     AND T1.FE_CAMB <= @IDFE_BUSQ
			        	     AND T2.CO_MONE = @ISCO_MONE_BASE
					     AND T2.FE_CAMB <= @IDFE_BUSQ
					     AND T1.CO_MONE = T2.CO_MONE_BASE
					     AND T1.FA_VNTA_MERC > 0
					     ORDER BY T1.FE_CAMB DESC) */

					     SELECT @VNFA_CAMB_0002 = ISNULL( ISNULL(T1.FA_VNTA_MERC, 0) ,0)
				    	     FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					     WHERE T1.CO_MONE = @ISCO_MONE_BASE
			    		     AND T1.FE_CAMB = @IDFE_BUSQ
				             AND T2.CO_MONE_BASE = @ISCO_MONE_ORIG
					     AND T2.FE_CAMB = @IDFE_BUSQ
					     AND T1.CO_MONE_BASE = T2.CO_MONE

					     If ISNULL(@VNFA_CAMB_0002, 0) = 0
					     	SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_MERC, 0)
				    	     	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					     	WHERE T1.CO_MONE = @ISCO_MONE_BASE
			    		     	AND T1.FE_CAMB <= @IDFE_BUSQ
				             	AND T2.CO_MONE_BASE = @ISCO_MONE_ORIG
					     	AND T2.FE_CAMB <= @IDFE_BUSQ	
					     	AND T1.CO_MONE_BASE = T2.CO_MONE
					     	AND T1.FA_VNTA_MERC > 0
					     	ORDER BY T1.FE_CAMB DESC)

					     /* SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_MERC, 0)
				    	     FROM TCFACT_CAMB T1, TCFACT_CAMB T2
					     WHERE T1.CO_MONE = @ISCO_MONE_BASE
			    		     AND T1.FE_CAMB <= @IDFE_BUSQ
				             AND T2.CO_MONE_BASE = @ISCO_MONE_ORIG
					     AND T2.FE_CAMB <= @IDFE_BUSQ
					     AND T1.CO_MONE_BASE = T2.CO_MONE
					     AND T1.FA_VNTA_MERC > 0
					     ORDER BY T1.FE_CAMB DESC) */

					     IF @ISST_USUA = 'S'
					       BEGIN	
					         IF @ISCO_MONE_ORIG = @ISCO_MONE_NACI
					             SELECT @VNFA_CAMB_0001 = @INFA_USUA
					         IF @ISCO_MONE_BASE = @ISCO_MONE_NACI
					             SELECT @VNFA_CAMB_0002 = @INFA_USUA
				      	       END

					     SELECT @VNFA_CAMB = 1 / (@VNFA_CAMB_0001 * @VNFA_CAMB_0002)
	
					     IF @VNFA_CAMB > 0 --SI EXISTE UN CAMINO INVERSO 
				      		BEGIN
						  --IF @ISST_USUA = 'N'
						      SELECT @ONIM_DEST = @INIM_BASE * @VNFA_CAMB
						  --ELSE
						      --SELECT @ONIM_DEST = @INIM_BASE * @INFA_USUA *  @VNFA_CAMB_0001
	
					    	END
					    ELSE
	 					BEGIN
						  SELECT @VNFA_CAMB_0001 = ISNULL( ISNULL(T1.FA_VNTA_MERC, 0) ,0)
		    	     			  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
						  WHERE T1.CO_MONE = @ISCO_MONE_ORIG
				   	 	  AND T1.FE_CAMB = @IDFE_BUSQ
				 		  AND T2.CO_MONE = @ISCO_MONE_BASE
						  AND T2.FE_CAMB = @IDFE_BUSQ
			     			  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE

						  If ISNULL(@VNFA_CAMB_0001, 0) = 0
						  	SELECT @VNFA_CAMB_0001 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_MERC, 0)
		    	     			  	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
						  	WHERE T1.CO_MONE = @ISCO_MONE_ORIG
				   	 	  	AND T1.FE_CAMB <= @IDFE_BUSQ
				 		  	AND T2.CO_MONE = @ISCO_MONE_BASE
						  	AND T2.FE_CAMB <= @IDFE_BUSQ
			     			  	AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
						  	AND T1.FA_VNTA_MERC > 0
				     		  	ORDER BY T1.FE_CAMB DESC)

						  SELECT @VNFA_CAMB_0002 = ISNULL( ISNULL(T1.FA_VNTA_MERC, 0) ,0)
				    	     	  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
						  WHERE T1.CO_MONE = @ISCO_MONE_BASE
			   		 	  AND T1.FE_CAMB = @IDFE_BUSQ
			 			  AND T2.CO_MONE = @ISCO_MONE_ORIG
						  AND T2.FE_CAMB = @IDFE_BUSQ

						  If ISNULL(@VNFA_CAMB_0002, 0) = 0
						  	SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_MERC, 0)
				    	     	  	FROM TCFACT_CAMB T1, TCFACT_CAMB T2
						  	WHERE T1.CO_MONE = @ISCO_MONE_BASE
			   		 	  	AND T1.FE_CAMB <= @IDFE_BUSQ
			 			  	AND T2.CO_MONE = @ISCO_MONE_ORIG
						  	AND T2.FE_CAMB <= @IDFE_BUSQ
					     	  	AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
						  	AND T1.FA_VNTA_MERC > 0
				     		  	ORDER BY T1.FE_CAMB DESC)

						  /* SELECT @VNFA_CAMB_0002 = (SELECT TOP 1 ISNULL(T1.FA_VNTA_MERC, 0)
				    	     	  FROM TCFACT_CAMB T1, TCFACT_CAMB T2
						  WHERE T1.CO_MONE = @ISCO_MONE_BASE
			   		 	  AND T1.FE_CAMB <= @IDFE_BUSQ
			 			  AND T2.CO_MONE = @ISCO_MONE_ORIG
						  AND T2.FE_CAMB <= @IDFE_BUSQ
					     	  AND T1.CO_MONE_BASE = T2.CO_MONE_BASE
						  AND T1.FA_VNTA_MERC > 0
				     		  ORDER BY T1.FE_CAMB DESC) */

						  SELECT @VNFA_CAMB = @VNFA_CAMB_0001 / @VNFA_CAMB_0002

						  IF @ISST_USUA = 'N'
						      SELECT @ONIM_DEST = @INIM_BASE * @VNFA_CAMB
						  ELSE
						      SELECT @ONIM_DEST = @INIM_BASE * @INFA_USUA *  @VNFA_CAMB_0001

					 	END
				      END	
			  END
		  END
	     End

	If @INIM_BASE = 1
	    SELECT @ONIM_DEST = ROUND(@ONIM_DEST, 6)
	Else 
	    SELECT @ONIM_DEST = ROUND(@ONIM_DEST, 2)

    RETURN (@ONIM_DEST)
    

END

GO
